Hadoop通过bind9配置DNS服务器替代hosts的IP映射(ubuntu版) | 您所在的位置:网站首页 › ubuntu 配置dns 命令行 › Hadoop通过bind9配置DNS服务器替代hosts的IP映射(ubuntu版) |
最开始搭建hadoop集群时,我是用hosts的ip映射实现的各个主机名与IP之间的映射关系。 但是,hosts的ip映射的缺点是,当我们在集群里面增加一个机器时,所有机器都要更新他们的hosts文件,这样就显得很繁琐。 通过查找资料,可以使用bind9配置DNS来替代原先的hosts的IP映射,当需要添加新主机时,只需要更改DNS服务器中bind的正向解析文件和反向解析文件即可。大大减轻了操作负担。 具体实现如下: 环境:Ubuntu 14.04.4 LTS 以三台主机为例: 192.168.1.200 delab-master-01 192.168.1.201 delab-slave-01 192.168.1.202 delab-slave-02 首先,如果你已经配置了hosts的ip映射,应该把各台机器上的ip映射删除。
1、安装bind9 选择一台主机作为DNS服务器(这里以delab-master-01),安装bind9 sudo apt-get install bind9 2、配置bind文件 bind9默认安装在/etc/bind/目录下,我们打开named.conf 可以看见: include "/etc/bind/named.conf.options";include "/etc/bind/named.conf.local";include "/etc/bind/named.conf.default-zones"; 它将本机的需要的配置独立在name.conf.local这个文件里面,在name.conf里面用include把name.conf.local包含进来,所以我们只需要修改named.conf.local即可。 配置如下: zone "hadoop.com"{type master;file "/etc/bind/db.hadoop.com";};zone "1.168.192.in-addr.arpa"{type master;file "/etc/bind/db.192.168.1";}; 这里hadoop.com是自己设置的域名,可以自行修改。这里的db.hadoop.com 对应着正向解析文件。 db.192.168.1对应反向解析文件。注意: 1.168.192 和db.192.168.1是刚好反过来的。
在/etc/bind/目录下分别新建db.hadoop.com和db.192.168.1文件。 在db.hadoop.com 中增加: @ IN SOA localhost. root.localhost. (1 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL;@ IN NS localhost.@ IN A 127.0.0.1delab-master-01 IN A 192.168.1.200delab-slave-01 IN A 192.168.1.201delab-slave-02 IN A 192.168.1.202 在db.192.168.1中增加: ;$TTL 604800@ IN SOA hadoop.com. root.hadoop.com. (1 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL;@ IN NS hadoop.com.200 IN PTR delab-master-01.hadoop.com.201 IN PTR delab-slave-01.hadoop.com.202 IN PTR delab-slave-02.hadoop.com. 3、修改所有机器中的dns服务器指向我们的dns服务器(即delab-master-01) 注意:每台机器的dns服务器指向都需要修改。 这里可以直接修改/etc/resolv.conf文件,增加nameserver 192.168.1.200 (这里的ip是我们DNS服务器的IP地址) 但是,在重新启动机器后,/etc/resolv.conf文件会被复写,所以不建议这么做。
建议直接修改/etc/network/interfaces文件。 重要:如果你使用的是ubuntu桌面版,网络配置可能是通过Network-Manager完成的,那么,应该先关掉Network-Manager(sudo stop network-manager),并将 /etc/NetworkManager/nm-system-settings.conf 文件中的managed=false: [ifupdown]managed=false 最后在interfaces文件中添加,dns-nameservers 192.168.1.200和dns-search hadoop.com auto eth0iface eth0 inet staticaddress 192.168.1.200netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 192.168.1.200dns-search hadoop.com 这里dns-search hadoop.com作用很重要,如果没有这个,那么我们访问各个主机时,需要把完整输入对应域名,如:delab-slave-01.hadoop.com ,配置了dns-search之后,我们就可以直接输入delab-slave-01来访问相应主机。这样的话,配置完DNS后,我们hadoop的相关配置文件就都不修改即可使用。
配置完后,我们应该更新一下网络配置: sudo ifdown --force eth0 && sudo ip addr flush dev eth0 && sudo ifup --force eth0 4、重启bind sudo /etc/init.d/bind9 restart 我们可以通过nslookup来查看配置是否成功:(正向解析和反向解析)
通过ping 主机名:
至此,我们DNS服务器就已经配置完成了,如果有新的主机加入集群,我们只需要配置DNS服务器中的bind的正向解析文件和反向解析文件即可。
当然,如果我们dns服务器挂了,整个集群就没法通信了,所以可以配置主从DNS服务器来实现HA(High Available),具体可参考以下博文: How To Configure BIND as a Private Network DNS Server on Ubuntu 16.04 https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-16-04
|
CopyRight 2018-2019 实验室设备网 版权所有 |